package com.atwisdom.star.service.specification;


import com.alibaba.fastjson.JSONObject;
import com.atwisdom.star.common.vo.ResultInfo;
import com.atwisdom.star.exception.pojo.BusinessException;


/**
 * 产品规格容器服务类
 *
 * @ClassName SpecificationService
 * @Author wjj
 * @Date 2024/7/19
 **/
public interface SpecificationService {

    /**
     * 根据产品id查询工艺参数组容器存在返回不存在新增-未启用
     */
    ResultInfo<?> querySpecificationByProductId(JSONObject data) throws BusinessException;

    /**
     * 1.根据产品id查询产品规格logic容器存在返回不存在新增
     * 2.同步采集点信息到工艺参数
     */
    ResultInfo<?> querySpecificationByProductIdAndSync(JSONObject data) throws BusinessException;

    /**
     * 同步采集点到工艺参数
     *
     * @param data
     * @return
     * @throws BusinessException
     */
    ResultInfo<?> syncToTechnologyParams(JSONObject data) throws BusinessException;

    /**
     * 新增工艺参数并关联工艺参数组容器
     */
    ResultInfo<?> addTechnologyParams(JSONObject data) throws BusinessException;

    /**
     * 根据产品id查询实验室参数组容器存在返回不存在新增
     */
    ResultInfo<?> queryLaboratoryByProductId(JSONObject data) throws BusinessException;

    /**
     * 新增实验室参数并关联实验室参数组容器
     */
    ResultInfo<?> addLaboratoryParams(JSONObject data) throws BusinessException;

    /**
     * 品规下是否有工艺参数或实验室参数实体
     */
    ResultInfo<?> isProductHasContent(JSONObject data) throws BusinessException;
}